package editor.cn;

import java.lang.management.ManagementFactory;

class Solution309{
    public static void main(String[] args) {
        Solution solution = new Solution309().new Solution();
    }
    //leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public int maxProfit(int[] prices) {
        int n=prices.length;
        int[][] dp = new int[n+2][2];
        dp[1][1]=Integer.MIN_VALUE/2;//无法在第1天持有利润，因为还没有卖
        for (int i = 0; i < n; i++) {
            dp[i+2][0]= Math.max(dp[i+1][0],dp[i+1][1]+prices[i]);  //卖出去钱变多
            dp[i+2][1]= Math.max(dp[i+1][1],dp[i][0]-prices[i]);

            //    买进来钱变少(无法在第二天买入，所以就只能是前天的买入的计算，但是可以在第二天卖出鸭！！所以上面的不受影响。、)
            //    这里和打家劫舍的某一题是很像的，不能偷相邻的房子！！所以往后面移动，这里的递推公式也很想！！！
        }
        return dp[n+1][0];
    }
}
//leetcode submit region end(Prohibit modification and deletion)

}












